package com.ideal.gui;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.net.URI;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 启动类
 *
 * @author ideal-20
 * @date 2023-08-05 10:02
 **/
public class StartGui {
    JFrame frame;
    JLabel timeLabel;
    JPanel panel;
    JButton refactorButton, exportButton, blogButton;
    JLabel label;

    public static void main(String[] args) {
        new StartGui();
    }

    public StartGui() {
        // 创建一个窗口
        JFrame frame = new JFrame("开发 By：二境志 语雀主页：https://www.yuque.com/ideal-20");
        // 设置窗口大小
        frame.setSize(600, 180);
        // 设置窗口位置居中
        frame.setLocationRelativeTo(null);
        // 设置窗口关闭时的操作
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 创建一个面板
        panel = new JPanel();
        panel.setLayout(null);

        // 创建本地导出md修复按钮
        refactorButton = new JButton("本地导出md修复");
        refactorButton.setBounds(50, 50, 150, 30);

        refactorButton.addActionListener(e -> {
            new RefactorGui();
        });

        // 创建批量导出知识库按钮
        exportButton = new JButton("在线批量导出知识库");
        exportButton.setBounds(220, 50, 150, 30);

        exportButton.addActionListener(e -> {
            new ExportGui();
        });

        // 创建一个 JButton，设置按钮的文本和大小
        blogButton = new JButton("跳转到作者主页 查看说明书");
        blogButton.setBounds(380, 50, 200, 30);

        // 为按钮添加点击事件监听器
        blogButton.addActionListener(e -> {
            try {
                // 使用 Desktop 类打开默认浏览器并跳转到百度首页
                Desktop.getDesktop().browse(new URI("https://www.yuque.com/ideal-20"));
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        });

        // 创建一个描述标签
        label = new JLabel("请选择要打开的 GUI：");
        label.setBounds(50, 20, 200, 20);

        // 将按钮和描述标签添加到面板上
        panel.add(label);
        panel.add(refactorButton);
        panel.add(exportButton);
        panel.add(blogButton);

        JLabel localLabel = new JLabel("<html> 理想永远年轻，永远热泪盈眶！</html>");
        localLabel.setBounds(50, 100, 500, 50);
        panel.add(localLabel);


        // 创建一个标签来显示时间
        timeLabel = new JLabel();
        panel.add(timeLabel);

        // 创建一个定时器，每秒钟触发一次
        Timer timer = new Timer(1000, e -> {
            // 获取当前时间并将其格式化为字符串
            Date now = new Date();
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String timeStr = format.format(now);

            // 将时间字符串设置为标签的文本
            timeLabel.setText("当前时间：" + timeStr);
        });
        timer.start();

        // 设置窗口大小和可见性等属性
        timeLabel.setBounds(300, 100, 500, 50);
        timeLabel.setVisible(true);

        // 将面板添加到窗口上
        frame.add(panel);

        // 设置窗口可见
        frame.setVisible(true);
    }


}
